pub fn another_function(x:i32, y:i32) {
    println!("The value of x is: {}", x);
    println!("The value of y is: {}", y);

    let mut  x1 = plus_five(x);
    println!("The value of x1 is: {}", x1);
    let z =plus_or_minus(x1);
    println!("The value of z is: {}", z);

    let str1 = "Hllo";

    let str = clear(str1.to_string());
    println!("The value of str is: {}",str);
}

fn plus_five(x:i32) -> i32 {
    x + 5
}

fn plus_or_minus(x:i32) -> i32 {
    if x > 5 {
        return x - 5
    }

    x + 5
}

use std::fmt::Debug;
use std::str;

fn report<T: Debug>(item: T) {
    println!("为什么 空值？ {:?}", item);
}

fn clear(text:String) ->String{
    format!("{}{}", "Test ", text)
}


/** 在 Rust 中，字符串拼接有多种方式，下面是一些常用的方法：
1. 使用 `+` 运算符：
 */
fn char_add(x:char, y:char) -> String {
    let s = x.to_string() + &y.to_string();
    s
}


// 2. 使用 `format!` 宏：
fn char_format(x:char, y:char) -> String {
    format!("{}{}", x, y)
}


//3. 使用 `push_str()` 方法：
fn char_push(x:char, y:char) -> String {
    let mut s = String::new();
    s.push(x);
    s.push(y);
    s
}

// 4. 使用 `String::from_utf8()` 和 `extend()` 方法：
// 进行字符串拼接

// fn char_extend(x:char, y:char) -> String {
//     let s1 = x.to_string().into_bytes();
//     let s2 = y.to_string().into_bytes();
//     let mut s = String::from_utf8(s1).unwrap();
//     s.extend(s2);
//     s
// }
